Agile software development is characterized by factors such as relatively short-timeframe iterations (which can be as short as two-week iterations), delivery of working software as part of these iterations, and regular adaptation of requirements and designs in response to changing circumstances.
In the practice of software usability engineering, several types of usability evaluation activities are commonly employed, including usability testing and usability inspection methods. Usability testing involves empirical evaluation of user interaction with software systems through testing with participants that represent real users performing real tasks.
By contrast, usability inspection methods include evaluation of user interaction with software systems by one or more evaluators who anticipate potential problems that users will experience. Examples of usability inspection methods include heuristic evaluation, cognitive walkthrough, and formal usability inspection.
Usability testing advantageously provides direct feedback from users on how the software system will ultimately be used. Usability inspection methods, however, are generally considered to be “lighter weight” (i.e., faster and less resource intensive) to implement in comparison to usability testing.